package jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * 执行DML语句
 * 用户注册
 */
public class JDBCDemo8 {
    public static void main(String[] args) {
        User user = InputUtil.getInputObject(new User(),"欢迎注册","注册");
        try (Connection connection = DBUtil.getConnection()){
            /*
                预编译SQL中的"?"仅能代表"值"
                INSERT INTO userinfo(username,password,nickname,age)
                VALUES(?,?,?,?)

                以下是错误示范
                "?"不能改变语义
                INSERT INTO userinfo(?,?,?,?)  数据库无法理解插入哪些字段
                VALUES(?,?,?,?)

                INSERT INTO ?(username,password,nickname,age)  无法识别插入那张表
                VALUES(?,?,?,?)

             */
            String sql = "INSERT INTO userinfo(username,password,nickname,age) " +
                         "VALUES(?,?,?,?)";
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, user.getUsername());
            ps.setString(2, user.getPassword());
            ps.setString(3, user.getNickname());
            ps.setInt(4,user.getAge());
            int num = ps.executeUpdate();
            if(num>0){
                System.out.println("注册成功");
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}







